package it.polimi.politics.web.beans;
 
import it.polimi.politics.dto.CandidaturaDTO;
import it.polimi.politics.dto.PartitoDTO;
import it.polimi.politics.dto.UtentiDTO;
import it.polimi.politics.managers.CandidatureManager;
import it.polimi.politics.managers.PartitoManager;
import it.polimi.politics.managers.UserManager;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

 
@ManagedBean(name = "candidatureBean")
@ViewScoped
public class CandidatureBean {
     
	private String idCorrente;
	@EJB
	private PartitoManager partitoMgr;
	@EJB
	private UserManager userMgr;
	@EJB
	private CandidatureManager candidatureMgr;
	
	private CandidaturaDTO candidatura;
	
	//serve solo per creaCandidatura()
	private CandidaturaDTO candidatura2;
	
	
	private List<CandidaturaDTO> candidature;


	
	public CandidaturaDTO getCandidatura2() {
		return candidatura2;
	}
	
	


	public void setCandidatura2(CandidaturaDTO candidatura2) {
		this.candidatura2 = candidatura2;
	}

	@PostConstruct
    public void init() {
		
	idCorrente = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");	
		
	candidatura2 = new CandidaturaDTO();
	
	setCandidature(candidatureMgr.visualizzaCandidature());
	}
	
	
	



	//!!!!!!!!!!!!!!!!!!!!!!!
	public void accettaCandidatura(){
		
	}
	
	//!!!!!!!!!!!!!!!!!
	
	public void rifiutaCandidatura(){
		
	}
	
	public String creaCandidatura(){
		
		int id = Integer.parseInt(this.idCorrente);
		PartitoDTO partito=partitoMgr.getPartitoDTO(id);
		UtentiDTO  utente =userMgr.getUtente();
		candidatura2.setStato(1);
		candidatureMgr.creaCandidatura(candidatura2, partito, utente);
				
		return "index?faces-redirect=true";
	}
	
	
	/*
	public String nome(int idcandidatura){
		visualizzaCandidatura(idcandidatura);
		return candidatura.getUtente().getNome();
	}
	

	public String cognome(int idcandidatura){
		visualizzaCandidatura(idcandidatura);
		return candidatura.getUtente().getCognome();
	}
	
	public String lettera(int idcandidatura){
		visualizzaCandidatura(idcandidatura);
		return candidatura.getLettera();
	}
		
	public String partito(int idcandidatura){
		visualizzaCandidatura(idcandidatura);
		return candidatura.getPartito().getNome();
	}
	
	public String cv(int idcandidatura){
		visualizzaCandidatura(idcandidatura);
		return candidatura.getCV();
	}
	*/

	public CandidaturaDTO getCandidatura() {
		return candidatura;
	}

	public void setCandidatura(CandidaturaDTO candidatura) {
		this.candidatura = candidatura;
	}

	public List<CandidaturaDTO> getCandidature() {
		return candidature;
	}

	public void setCandidature(List<CandidaturaDTO> candidature) {
		this.candidature = candidature;
	}


  
  
}